#pragma once

#include <windows.h>
#include <gl\gl.h>
#include <gl\glu.h>

#include "..\Demo\IAnimatable.h"
#include "LightTarget.h"

class Light : public IAnimatable
{
protected:
	sm::Vec3 position;
	LightTarget *target;
	float roll;

	int id;

public:
	Light(int id, int targetId);
	~Light();

	void Process(float ms);

	sm::Vec3 GetPosition();
	sm::Vec3 GetTargetPosition();
	float GetRoll();

	virtual float GetTargetDistance();
	LightTarget * GetTarget();

	void SetRotation(float angle, sm::Vec3 axis);
	void SetScale(sm::Vec3 scale);

	virtual void SetPosition(sm::Vec3 position);
	virtual void SetLookTarget(sm::Vec3 lookTarget);
	virtual void SetRoll(float roll);

	int GetId();
};
